
//http请求对象
var HttpRequest = {
    createNew: function() {
        var httpRequest = {};

        //发起http请求
        //params参数：
        // url
        // type
        // params
        // error
        // success
        // dataType
        // 
        httpRequest.request = function(params) {
            if (!params.success) {
                alert("必须传递请求成功后的方法");
                return;
            }
            $.ajax({
                url: params.url,
                type: params.type,
                data: params.data,
                dataType: params.dataType,
                success: function(data) {
                    if (params.success) {
                        params.success(data);
                    }
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    if (params.error) {
                        params.error(XMLHttpRequest, textStatus, errorThrown);
                        return;
                    }
                    alert(textStatus);
                },
            });
        };
        return httpRequest;
    }
};


var storeHttpRequest = {
    createNew: function() {
        var storeHttpRequest = {};
        storeHttpRequest.host = "";

        //发起http请求
        //params参数：
        // uri
        // type
        // params
        // error http请求出现错误的处理方法
        // isOK 请求app.pba.cn接口，当errno等于0时会调用isOK方法
        // noOK 当errno!=0时会调用这个方法
        // dataType
        // 
        storeHttpRequest.request = function(params) {
            if (!params.dataType) {
                params.dataType = "json";
            }
            if (!params.isOK) {
                alert("请求商城接口isOK方法必须要设置");
                return;
            }
            if (!params.data) {
                params.data = {};
            }
            if (!params.type) {
                params.type = "GET";
            }
            params.url = this.host + params.uri;

            if (params.dataType == "json") {
                params.success = function(data) {
                    if (data.status === "0") {
                        params.isOK(data);
                        return;
                    }
                    if (params.noOK) {
                        params.noOK(data);
                        return;
                    }
                    showMessage(data.message);
                };
            } else if (params.dataType == "html") {
                params.success = function(data) {
                    params.isOK(data);
                };
            }

            var httpRequest = HttpRequest.createNew();
            httpRequest.request(params);
        };
        return storeHttpRequest;
    }
};

var storeHttpRequest = storeHttpRequest.createNew();

//显示信息
function showMessage(message) {
    alert(message);
}


//模板类
var Template = {
    createNew: function() {
        var template = {};

        template.render = function(content, fields) {
            for (k in fields) {
                var regx = "{{" + k + "}}";
                content = content.replace(new RegExp(regx, "g"), fields[k]);
            }
            return content;
        };

        return template;
    }
};

var template = Template.createNew();

//检测元素是否在数组中
function inArray(needle, haystack) {
    for (var i in haystack) {
        if (needle == haystack[i]) {
            return true;
        }
    }
    return false
}
